texture ColorMap;
sampler colorSampler = sampler_state
{
    Texture = <ColorMap>;
    AddressU = Clamp;
    AddressV = Clamp;
    MagFilter = Point;
    MinFilter = Point;
    Mipfilter = Point;
};

texture BlurredSSAO;
sampler ssaoSampler = sampler_state
{
    Texture = <BlurredSSAO>;
    AddressU = Clamp;
    AddressV = Clamp;
    MagFilter = Point;
    MinFilter = Point;
    Mipfilter = Point;
};

texture LightMap;
sampler lightSampler = sampler_state
{
    Texture = <LightMap>;
    AddressU = Clamp;
    AddressV = Clamp;
    MagFilter = Point;
    MinFilter = Point;
    Mipfilter = Point;
};

texture SpecularMap;
sampler specularSampler = sampler_state
{
    Texture = <SpecularMap>;
    AddressU = Clamp;
    AddressV = Clamp;
    MagFilter = Point;
    MinFilter = Point;
    Mipfilter = Point;
};

struct ShaderData
{
    float4 Position : POSITION0;
    float2 TexCoord : TEXCOORD0;
};

ShaderData VertexShaderFunction(ShaderData input)
{
    return input;
}

float4 PixelShaderFunction(float2 screenCoord : TEXCOORD0) : COLOR0
{
    float4 light = tex2D(lightSampler, screenCoord);
    float4 specular = tex2D(specularSampler, screenCoord);
    float4 color = tex2D(colorSampler, screenCoord);
    float4 ssao = tex2D(ssaoSampler, screenCoord);

    return /*(color * light + specular)*/1 * ssao;
}

technique Technique1
{
    pass Pass1
    {
        VertexShader = compile vs_2_0 VertexShaderFunction();
        PixelShader = compile ps_2_0 PixelShaderFunction();
    }
}
